Pii: S0950-5849(99)00091-9

نویسندگان

  • B. Boehm
  • K. Sullivan
چکیده

Software is valuable when it produces information in a manner that enables people and systems to meet their objectives more effectively. Software engineering techniques have value when they enable software developers to build more valuable software. Software economics is the sub-field of software engineering that seeks improvements which enable software engineers to reason more effectively about important economic aspects of software development, including cost, benefit, risk, opportunity, uncertainty, incomplete knowledge and the value of additional information, implications of competition, and so forth. In this paper, we survey the current status of selected parts of software economics, highlighting the gaps both between practice and theory and between our current understanding and what is needed. The sheer volume of current software costs makes the study and application of software economics techniques a significant area of concern and opportunity. Recent studies [1,2] estimate roughly 2,000,000 software professionals in the US in 1998. At typical salaries of $60–80,000/year and a typical overhead rate of 150%, this translates into a $300– 400 billion annual expenditure on software development in the US alone. A conservative estimate of worldwide software costs is twice the US costs, or $600–800 billion per year. With the kind of expenditures now being made on software, just the economics of more efficient software production are important to understand and apply. Software development is widely seen to be inefficient, which means that there is considerable room for improvement. A 10% reduction in software production costs translates into a $30–40 billion annual savings in the US, and $60–80 billion worldwide. One cause of inefficiency is the inadequacy of economic information available to support decision making. In the absence of reasonable cost estimates, for example, projects are at risk. Improving our basic understanding of software economics and the abilities of organizations to model and analyze economic aspects, can help to make them significantly more productive. A simple example: once organizations appreciate that late defect fixes are more expensive than earlier fixes, they can reduce their costs by reorganizing their process to focus on early defect prevention and elimination. The software engineering activity centers on decision making in very complex situations. What requirements are feasible given certain resource limitations? How much should one bid on a project? How should one modularize a design to create opportunities and to reduce future costs? How can processes be structured to dramatically improve cycle times so as to capture profits in ephemeral markets? Such decisions can be addressed more effectively using economics-based techniques; one definition of “economics” is “the study of how people make decisions in resourcelimited situations.” An important problem is to empower high-level managers to choose the best available economic reasoning techniques for use in their projects. This paper is meant to help researchers and managers by providing an overview of the current state and prospects for software economics. We address three main questions. In Section 2 we discuss how we have done up to now in software economics, and what forces are driving the need for new work. Section 3 focuses on the current state of our knowledge and practice in cost and schedule estimation, in particular, and in decision support, more broadly. Section 4 closes with a more general perspective of future trends.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Software economics: status and prospects

Software is valuable when it produces; information in a manner that enables people and systems to meet their objectives more effectively. Software engineering techniques have value when they enable software developers to build more valuahle software. Software economics is the sub-field of software engineering that seeks improvements which enable software engineers to reaso:n more effectively ab...

متن کامل

Restructuring programs by tucking statements into functions

Changing the internal structure of a program without changing its behavior is called restructuring. This paper presents a transformation called tuck for restructuring programs by decomposing large functions into small functions. Tuck consists of three steps: Wedge, Split, and Fold. A wedge—a subset of statements in a slice—contains computations that are related and that may create a meaningful ...

متن کامل

Collaboration and coordination in process-centered software development environments: a review of the literature

Process-Centered Software Development Environments are systems that provide automated support for software development activities. Such environments mediate the efforts of potentially large groups of developers working on a common project. This mediation is based on runtime support for actual work performance based on formal representations of work. In the present work, we survey and assess the...

متن کامل

Pii: S0950-5849(99)00077-4

This paper discusses Brooks’ The Mythical Man-Month, a landmark work in the software project management field, and compares the software project management advice given there with practices employed some 25 years later. To find out the state of today’s practice 20 experienced software developers were interviewed regarding their impressions of factors leading to success or failure of software de...

متن کامل

Pii: S0950-5849(99)00087-7

This paper outlines the historical development of data management systems in order to identify the key issues for successful systems. It identifies the need for data independence and the embedding of structural and behavioural semantics in the database as key issues in the development of modern systems. Hierarchical, Network, Relational, Object-oriented and Object-relational data management sys...

متن کامل

Pii: S0950-5849(99)00033-6

To deal with the increased complexity related to the testing of communications software, we propose the integration and application of finite state machine based specification transformations and testability measures early in the communications software development process. Based on this integration, the testability of a given design is estimated and appropriate specification transformations ar...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1999